package org.lq.shopping.dao;

import java.util.List;

import org.lq.shopping.base.BaseDao;
import org.lq.shopping.entity.ShopGoods;

public interface ShopGoodsDao extends BaseDao<ShopGoods>{
	/**
	 * 根据商品名称模糊查询
	 * @return name
	 */
	List<ShopGoods> getGoodsLikeName(String name);
	/**
	 * 根据商品价格范围查询
	 * @param min最小
	 * @param max最大
	 * @return
	 */
	List<ShopGoods> findGoodsByPrice(double min,double max,int id);
	/**
	 * 根据商品类型查询
	 * @param type
	 * @return
	 */
	List<ShopGoods> findGoodsByType(int goodstypeid);
	/**
	 * 根据品牌查询
	 * @param brand
	 * @return
	 */
	List<ShopGoods> findGoodsByBrand(String brand);
	/**
	 * 按商品名称分页
	 * @param name
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	List<ShopGoods> findGoodsPageByName(String name, int pageIndex, int pageSize);
	/**
	 * 按商品价格分页
	 * @param min
	 * @param max
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	List<ShopGoods> findGoodsPageByPrice(double min, double max, int pageIndex, int pageSize);
	/**
	 * 按商品类型分页
	 * @param goodstypeid
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	List<ShopGoods> findGoodsPageByType(int goodstypeid, int pageIndex, int pageSize);
	/**
	 * 按商品品牌分页
	 * @param brand
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	List<ShopGoods> findGoodsPageByBrand(String brand, int pageIndex, int pageSize);
	/**
	 * 商品名称分页总行数
	 * @return
	 */
	int getCountByName(String name);
	/**
	 * 商品价格分页总行数
	 * @return
	 */
	int getCountByPrice(double min,double max);
	/**
	 * 商品类型分页总行数
	 * @return
	 */
	int getCountByType(int typeid);
	/**
	 * 商品品牌分页总行数
	 * @return
	 */
	int getCountByBrand(String barnd);
	/**
	 * redis
	 */
	/**
	 * 按商品名称分页
	 * @param name
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	List<ShopGoods> findGoodsPageByName(String name);
	/**
	 * 按商品价格分页
	 * @param min
	 * @param max
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	List<ShopGoods> findGoodsPageByPrice(double min, double max);
	/**
	 * 按商品类型分页
	 * @param goodstypeid
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	List<ShopGoods> findGoodsPageByType(int goodstypeid);
	/**
	 * 按商品品牌分页
	 * @param brand
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	List<ShopGoods> findGoodsPageByBrand(String brand);
	
}

